RCAD script
1.00
porte2
porte2up.bmp
porte2down.bmp
2
0
1
Arc's thickness
Door's thickness








0,25
2








Dim s_x1, s_y1, s_xc, s_yc, s_r, s_angle, s_ep1, s_ep2 as double

sub angle2points(fx1 as double, fy1 as double, fx2 as double, fy2 as double)
Dim s_dx, s_dy as double
   //Calcul angle
   s_dx = fx2 - fx1
   s_dy = fy2 - fy1
  
   if s_dx <> 0 then
      s_angle = abs(Atan(s_dy / s_dx))
      if s_dx > 0 then
         if s_dy < 0 then
            s_angle = 6.283185307179586 - s_angle
         end if
      else
         if s_dy > 0 then
            s_angle = 3.141592653589793 - s_angle
         else
            s_angle = 3.141592653589793 + s_angle
         end if
      end if
   else
      if s_dy = 0 then
         s_angle = 0
      else
         if s_dy > 0 then
            s_angle = 1.570796326794897
         else
            s_angle = 4.71238898038469
         end if
      end if
   end if
   s_angle = s_angle * 180 / 3.141592653589793
end sub

s_xc = firstx
s_yc = firsty
s_ep1 = CDbl(UserInput1)
s_ep2 = CDbl(UserInput2)
angle2points(firstx, firsty, lastx, lasty)
s_r = sqrt(Pow(lastx- firstx,2) + Pow(lasty - firsty,2)) / 2
Add_Arc(s_xc, s_yc, s_r, s_r, s_angle, 90, s_ep1, 7, 0, False, False, False, False, 100, 100)
s_angle = (s_angle + 90) / 180 * 3.141592653589793
s_x1 = s_xc + s_r * Cos(s_angle)
s_y1 = s_yc + s_r * Sin(s_angle)
Add_Line(s_xc, s_yc, s_x1, s_y1, s_ep2, 7, False, False, False, 100)
s_xc = lastx
s_yc = lasty
angle2points(lastx, lasty, firstx, firsty)
Add_Arc(s_xc, s_yc, s_r, s_r, s_angle, -90, s_ep1, 7, 0, False, False, False, False, 100, 100)
s_angle = (s_angle - 90) / 180 * 3.141592653589793
s_x1 = s_xc + s_r * Cos(s_angle)
s_y1 = s_yc + s_r * Sin(s_angle)
Add_Line(s_xc, s_yc, s_x1, s_y1, s_ep2, 7, False, False, False, 100)
